home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Electronic Clipper 1995 April
/
Electronic Clipper 1995-04.iso
/
mac
/
PC_USERS
/
IDEASRC
/
SETUP
/
MPLAYER
/
MOVIEUTL.C
< prev
next >
Wrap
Text File
|
1993-04-17
|
29KB
|
692 lines
// ---------------------------------------------------------------------
//
// MovieUtl.c - Movie Player - QuickTime for Windows
//
// Version 1.0
//
// (c) 1988-1992 Apple Computer, Inc. All Rights Reserved.
//
// ---------------------------------------------------------------------
// Includes
// --------
#include <Windows.H> // Required by Windows
#include <qtw.h> // Interface to QuickTime
#include <qtole.h> // Interface to qtole dll
#include <string.h> // Standard "C"
#include "common.h" // Interface to common.c
#include "player.h" // Interface to other *.c files
#include "player.hr" // Defines used in *.rc files
// Constants
// ---------
#define OPTIONSPROP "MovieOptionsProp"
// typedefs
// --------
typedef struct _tagWORKOPTIONS
{QTOLE_OPTIONSMOVIE SaveOptions;
LPQTOLE_OPTIONSMOVIE lpOptions;
HLOCAL hmem;
} WORKOPTIONS;
typedef WORKOPTIONS NEAR * NPWORKOPTIONS;
// Exported callback functions
// ----------------------------
BOOL __export CALLBACK GetOptionsDlgProc (HWND, UINT, WPARAM, LPARAM);
// Internal Function Declarations
// ------------------------------
static VOID NEAR SetDlgForOptions (HWND, LPQTOLE_OPTIONSMOVIE);
static VOID NEAR GetCurrentDlgSettings (HWND, LPQTOLE_OPTIONSMOVIE);
static VOID NEAR SaveOptionsAsDefault (LPQTOLE_OPTIONSMOVIE);
// Function: PlayerGetOptions - Opens the options dialog
// --------------------------------------------------------------------
// Parameters: HWND hwndParent HWND of dialog parent
// LPQTOLE_OPTIONSMOVIE lpOptions -> options struct
//
// Returns: LONG 0L if OK
// --------------------------------------------------------------------
BOOL FAR PlayerGetOptions( HWND hwndParent, LPQTOLE_OPTIONSMOVIE lpOptions )
{BOOL bChangedOptions = FALSE;
DLGPROC lpDlgProc;
if( lpDlgProc = (DLGPROC) MakeProcInstance
( (FARPROC) GetOptionsDlgProc, PlayerQueryInstance()))
{bChangedOptions = (BOOL) DialogBoxParam( PlayerQueryResources(),
MAKEINTRESOURCE( PLAYER_DLG_OPTIONS ),
hwndParent? hwndParent: GetActiveWindow(),
lpDlgProc, (LPARAM) lpOptions );
FreeProcInstance( (FARPROC) lpDlgProc );
// Null hwndParent indicates that dlg was started by qtole message
// with no open movie. In this case tell QTOle.dll that dialog has
// been closed. Must do this even if options are not changed and
// must return the same pointer to lpOptions as input argument to
// this function. When qtole opens dialog for open movie, normal
// closing will updata options
if( !hwndParent )
QTOLE_ClosedOptionsDlg( PlayerQueryOleData(),
(LPQTOLE_OPTIONS) lpOptions, bChangedOptions );
}
else
{CommonTellUser( PlayerQueryResources(),
PLAYER_STRING_NOMEMORY, NULL, MB_OK );
}
return bChangedOptions;
}
// Function: GetOptionsDlgProc - Get options dialog proc
// --------------------------------------------------------------------
// Parameters: As required by Microsoft Windows
//
// Returns: As required by Microsoft Windows
// --------------------------------------------------------------------
BOOL __export CALLBACK GetOptionsDlgProc
( HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam )
{NPWORKOPTIONS pwoWorkOptions;
HLOCAL hmem;
BOOL bOptionsChanged;
BOOL bChecked;
LPQTOLE_OPTIONSMOVIE lpOptions;
switch( message )
{case WM_INITDIALOG:
lpOptions = (LPQTOLE_OPTIONSMOVIE) lParam;
hmem = LocalAlloc( LHND, sizeof( WORKOPTIONS ));
pwoWorkOptions = (NPWORKOPTIONS) LocalLock( hmem );
pwoWorkOptions->hmem = hmem;
pwoWorkOptions->SaveOptions = *lpOptions;
pwoWorkOptions->lpOptions = lpOptions;
SetProp( hdlg, OPTIONSPROP, (HANDLE) pwoWorkOptions );
SetDlgForOptions( hdlg, pwoWorkOptions->lpOptions );
SetDlgItemText( hdlg, EDIT_OPTIONS_CAPTION,
pwoWorkOptions->lpOptions->szCaption );
return TRUE;
case WM_COMMAND:
switch( wParam )
{case IDOK:
pwoWorkOptions = (NPWORKOPTIONS) GetProp( hdlg, OPTIONSPROP );
GetCurrentDlgSettings( hdlg, pwoWorkOptions->lpOptions );
bOptionsChanged
= (_fmemcmp( pwoWorkOptions->lpOptions,
&pwoWorkOptions->SaveOptions,
sizeof( QTOLE_OPTIONSMOVIE )) != 0 );
hmem = pwoWorkOptions->hmem;
LocalUnlock( hmem );
LocalFree( hmem );
RemoveProp( hdlg, OPTIONSPROP );
EndDialog( hdlg, bOptionsChanged );
return TRUE;
case IDCANCEL:
pwoWorkOptions = (NPWORKOPTIONS) GetProp( hdlg, OPTIONSPROP );
hmem = pwoWorkOptions->hmem;
LocalUnlock( hmem );
LocalFree( hmem );
RemoveProp( hdlg, OPTIONSPROP );
EndDialog( hdlg, FALSE );
return TRUE;
case EDIT_OPTIONS_SHOWMC:
bChecked = IsDlgButtonChecked( hdlg, EDIT_OPTIONS_SHOWMC );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_CAPTION_TEXT ),
bChecked );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_CAPTION ),
bChecked );
return TRUE;
case EDIT_OPTIONS_COPYICON:
bChecked = IsDlgButtonChecked( hdlg, EDIT_OPTIONS_COPYICON );
EnableWindow( GetDlgItem( hdlg,
EDIT_OPTIONS_SHOWTITLEBAR ), bChecked );
if( !bChecked )
CheckDlgButton( hdlg, EDIT_OPTIONS_SHOWTITLEBAR, TRUE );
return TRUE;
case EDIT_OPTIONS_SAVEASDEF:
pwoWorkOptions = (NPWORKOPTIONS) GetProp( hdlg, OPTIONSPROP );
GetCurrentDlgSettings( hdlg, pwoWorkOptions->lpOptions );
SaveOptionsAsDefault( pwoWorkOptions->lpOptions );
return TRUE;
case EDIT_OPTIONS_RESTRDEF:
pwoWorkOptions = (NPWORKOPTIONS) GetProp( hdlg, OPTIONSPROP );
PlayerGetDefaultOptions( pwoWorkOptions->lpOptions );
SetDlgForOptions( hdlg, pwoWorkOptions->lpOptions );
return FALSE;
default:
return FALSE;
}
return TRUE;
default:
return FALSE;
}
return FALSE;
}
// Function: QTOLEServerCallBack - Server callback used by qtole.dll to
// send commands to the server
// --------------------------------------------------------------------
// Parameters: UINT uMessage
// WPARAM wParam
// LPARAM lParam
// LPQTOLE_OPTIONSMOVIE lpOptions
//
//
// Returns: QTOLE_ERR QTOLE_OK if OK
// --------------------------------------------------------------------
QTOLE_ERR __export CALLBACK QTOLEServerCallBack
( UINT uMessage, WPARAM wParam, LPARAM lParam,
LPQTOLE_OPTIONSMOVIE lpOptions )
{HWND hwndMovie;
NPMOVIEDATA pMovieData;
RECT rcMovie;
RECT rcClient;
RECT rcIntersect;
switch( uMessage )
{case QTOLE_MSG_OPENOBJECT:
// Open a movie window
SendMessage( PlayerQueryFrameWindow(),
WM_PLAYER_CMDLINE, 0, lParam );
hwndMovie = (HWND) SendMessage( PlayerQueryClientWindow(),
WM_MDIGETACTIVE, 0, 0L );
if( hwndMovie &&
( pMovieData = (NPMOVIEDATA) GetWindowWord( hwndMovie, 0 )))
{pMovieData->qtoleOptions = *lpOptions;
pMovieData->qtoleOptions.hwndObject = hwndMovie;
pMovieData->qtoleOptions.mMovie = pMovieData->mMovie;
UpdateMovieForOptions( hwndMovie, pMovieData, TRUE );
}
break;
case QTOLE_MSG_SHOWOBJECT:
hwndMovie = (HWND) wParam;
ShowWindow( PlayerQueryFrameWindow(), SW_SHOWNORMAL );
GetWindowRect( hwndMovie, &rcMovie );
MapWindowPoints( HWND_DESKTOP,
PlayerQueryClientWindow(), (LPPOINT) &rcMovie, 2 );
GetClientRect( PlayerQueryClientWindow(), &rcClient );
if( !IntersectRect( &rcIntersect, &rcClient, &rcMovie ))
{MoveWindow( hwndMovie, 0, 0,
rcMovie.right - rcMovie.left,
rcMovie.bottom - rcMovie.top, TRUE );
}
SendMessage( PlayerQueryClientWindow(),
WM_MDIACTIVATE, wParam, 0L );
if( pMovieData = (NPMOVIEDATA) GetWindowWord( hwndMovie, 0 ))
{pMovieData->qtoleOptions = *lpOptions;
pMovieData->qtoleOptions.hwndObject = hwndMovie;
pMovieData->qtoleOptions.mMovie = pMovieData->mMovie;
UpdateMovieForOptions( hwndMovie, pMovieData, TRUE );
}
break;
case QTOLE_MSG_OPENOPTIONSDLG:
// Post message because we are not allowed to open a dialog
// inside an OLE method, in this case DoVerb which sends this message.
// In fact, opening the dialog directly seems to work but this
// is probably just lucky coincidence and can't be counted on.
// If wParam == hwndMovie is NULL, post to frame wnd because we don't
// open a movie wnd. If wParam != NULL, post message to hwndMovie to
// open the dialog
if( NULL != ( hwndMovie = (HWND) wParam ))
{PostMessage( hwndMovie, WM_COMMAND, PLAYER_EDIT_OPTIONS, 0L );
}
else
{PostMessage( PlayerQueryFrameWindow(),
WM_PLAYER_OLE_OPTIONSDLG, 0, (LPARAM) lpOptions );
}
break;
case QTOLE_MSG_PLAYOBJECT:
PostMessage( PlayerQueryFrameWindow(),
WM_PLAYER_OLE_PLAYOBJECT, 0, lParam );
break;
case QTOLE_MSG_FILEOPEN:
PostMessage( PlayerQueryFrameWindow(),
WM_COMMAND, PLAYER_FILE_OPEN, 0L );
break;
default:
return QTOLE_GEN_ERROR;
}
return QTOLE_OK;
}
// Function: PlayerGetDefaultOptions - Gets the default options
// --------------------------------------------------------------------
// Parameters: LPQTOLE_OPTIONSMOVIE lpOptions
//
// Returns: VOID
// --------------------------------------------------------------------
VOID FAR PlayerGetDefaultOptions( LPQTOLE_OPTIONSMOVIE lpOptions )
{char szSection[32];
char szEntry[64];
// Initial defaults
#define SHOWMC_DEF TRUE
#define SELONLY_DEF FALSE
#define DRAWFRAME_DEF TRUE
#define USEPALETTE_DEF TRUE
#define COPYICON_DEF FALSE
#define SHOWTITLE_DEF TRUE
#define CURRENTFRAME_DEF TRUE
#define LOOP_DEF FALSE
#define LOOPPALIND_DEF FALSE
#define SIZEHALF_DEF FALSE
#define SIZENORMAL_DEF TRUE
#define SIZEDOUBLE_DEF FALSE
LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_NAME, szSection, sizeof( szSection ));
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SHOWMC, szEntry, sizeof( szEntry )))
lpOptions->bShowMovieController = SHOWMC_DEF;
else
lpOptions->bShowMovieController = (BOOL)
GetPrivateProfileInt( szSection, szEntry, SHOWMC_DEF, QTW_PROFILE );
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_PLAYSELONLY, szEntry, sizeof( szEntry )))
lpOptions->bPlaySelectionOnly = SELONLY_DEF;
else
lpOptions->bPlaySelectionOnly = (BOOL)
GetPrivateProfileInt( szSection, szEntry, SELONLY_DEF, QTW_PROFILE );
if( lpOptions->bSoundOnlyMovie )
lpOptions->bDrawWindowFrame = FALSE;
else if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_DRAWFRAME, szEntry, sizeof( szEntry )))
lpOptions->bDrawWindowFrame = DRAWFRAME_DEF;
else
lpOptions->bDrawWindowFrame = (BOOL)
GetPrivateProfileInt( szSection, szEntry, DRAWFRAME_DEF, QTW_PROFILE );
if( lpOptions->bSoundOnlyMovie )
lpOptions->bUseMoviePalette = FALSE;
else if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_USEPALETTE, szEntry, sizeof( szEntry )))
lpOptions->bUseMoviePalette = USEPALETTE_DEF;
else
lpOptions->bUseMoviePalette = (BOOL)
GetPrivateProfileInt( szSection, szEntry, USEPALETTE_DEF, QTW_PROFILE );
if( lpOptions->bSoundOnlyMovie )
lpOptions->bCopyIcon = TRUE;
else if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_COPYICON, szEntry, sizeof( szEntry )))
lpOptions->bCopyIcon = COPYICON_DEF;
else
lpOptions->bCopyIcon = (BOOL)
GetPrivateProfileInt( szSection, szEntry, COPYICON_DEF, QTW_PROFILE );
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SHOWTITLE, szEntry, sizeof( szEntry )))
lpOptions->bShowTitleBar = SHOWTITLE_DEF;
else
lpOptions->bShowTitleBar = (BOOL)
GetPrivateProfileInt( szSection, szEntry, SHOWTITLE_DEF, QTW_PROFILE );
if( lpOptions->bSoundOnlyMovie ) // This actually doesn't do anything
lpOptions->bCopyCurrentFrame = CURRENTFRAME_DEF; // for sound only movies
else if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_CURRENTFRAME, szEntry, sizeof( szEntry )))
lpOptions->bCopyCurrentFrame = CURRENTFRAME_DEF;
else
lpOptions->bCopyCurrentFrame = (BOOL)
GetPrivateProfileInt( szSection, szEntry, CURRENTFRAME_DEF, QTW_PROFILE );
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_LOOP, szEntry, sizeof( szEntry )))
lpOptions->bLoop = LOOP_DEF;
else
lpOptions->bLoop = (BOOL)
GetPrivateProfileInt( szSection, szEntry, LOOP_DEF, QTW_PROFILE );
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_LOOPPALIND, szEntry, sizeof( szEntry )))
lpOptions->bLoopPalindrome = LOOPPALIND_DEF;
else
lpOptions->bLoopPalindrome = (BOOL)
GetPrivateProfileInt( szSection, szEntry, LOOPPALIND_DEF, QTW_PROFILE );
// Now make sure only one option is on
if( lpOptions->bLoop )
{lpOptions->bLoopPalindrome = FALSE;
}
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SIZEHALF, szEntry, sizeof( szEntry )))
lpOptions->bSizeHalf = SIZEHALF_DEF;
else
lpOptions->bSizeHalf = (BOOL)
GetPrivateProfileInt( szSection, szEntry, SIZEHALF_DEF, QTW_PROFILE );
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SIZENORMAL, szEntry, sizeof( szEntry )))
lpOptions->bSizeNormal = SIZENORMAL_DEF;
else
lpOptions->bSizeNormal = (BOOL)
GetPrivateProfileInt( szSection, szEntry, SIZENORMAL_DEF, QTW_PROFILE );
if( !szSection[0] || !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SIZEDOUBLE, szEntry, sizeof( szEntry )))
lpOptions->bSizeDouble = SIZEDOUBLE_DEF;
else
lpOptions->bSizeDouble = (BOOL)
GetPrivateProfileInt( szSection, szEntry, SIZEDOUBLE_DEF, QTW_PROFILE );
// Now make sure no more than one option is on
// Give priority to normal
if( lpOptions->bSizeNormal )
{lpOptions->bSizeHalf = FALSE;
lpOptions->bSizeDouble = FALSE;
}
else if( lpOptions->bSizeDouble )
{lpOptions->bSizeHalf = FALSE;
}
return;
}
// Function: SaveOptionsAsDefault - Caches the current options as the defaults
// in qtw.ini
// --------------------------------------------------------------------
// Parameters: LPQTOLE_OPTIONSMOVIE lpOptions
//
// Returns: VOID
// --------------------------------------------------------------------
static VOID NEAR SaveOptionsAsDefault( LPQTOLE_OPTIONSMOVIE lpOptions )
{char szSection[32];
char szEntry[64];
#define szONE "1"
#define szZERO "0"
if( !LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_NAME, szSection, sizeof( szSection )))
return;
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SHOWMC, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bShowMovieController? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_PLAYSELONLY, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bPlaySelectionOnly? szONE: szZERO, QTW_PROFILE );
if( !lpOptions->bSoundOnlyMovie )
{if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_DRAWFRAME, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bDrawWindowFrame? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_USEPALETTE, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bUseMoviePalette? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_COPYICON, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bCopyIcon? szONE: szZERO, QTW_PROFILE );
}
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SHOWTITLE, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bShowTitleBar? szONE: szZERO, QTW_PROFILE );
if( !lpOptions->bSoundOnlyMovie &&
LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_CURRENTFRAME, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bCopyCurrentFrame? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_LOOP, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bLoop? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_LOOPPALIND, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bLoopPalindrome? szONE: szZERO, QTW_PROFILE );
if( !lpOptions->bSoundOnlyMovie )
{if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SIZEHALF, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bSizeHalf? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SIZENORMAL, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bSizeNormal? szONE: szZERO, QTW_PROFILE );
if( LoadString( PlayerQueryResources(),
PLAYER_STRING_OPTIONS_SIZEDOUBLE, szEntry, sizeof( szEntry )))
WritePrivateProfileString( szSection, szEntry,
lpOptions->bSizeDouble? szONE: szZERO, QTW_PROFILE );
}
return;
}
// Function: SetDlgForOptions - Sets the options dialog controls according
// to current options
// --------------------------------------------------------------------
// Parameters: HWND hdlg
// LPQTOLE_OPTIONSMOVIE lpOptions
//
//
// Returns: VOID
// --------------------------------------------------------------------
static VOID NEAR SetDlgForOptions( HWND hdlg, LPQTOLE_OPTIONSMOVIE lpOptions )
{BOOL bCopyIcon;
int idButton;
CheckDlgButton( hdlg, EDIT_OPTIONS_SHOWMC,
lpOptions->bShowMovieController );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_CAPTION_TEXT ),
lpOptions->bShowMovieController );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_CAPTION ),
lpOptions->bShowMovieController );
CheckDlgButton( hdlg, EDIT_OPTIONS_PLAYSELONLY,
lpOptions->bPlaySelectionOnly );
if( !lpOptions->bSoundOnlyMovie )
{CheckDlgButton( hdlg, EDIT_OPTIONS_DRAWFRAME,
lpOptions->bDrawWindowFrame );
CheckDlgButton( hdlg, EDIT_OPTIONS_USEPALETTE,
lpOptions->bUseMoviePalette );
}
else
{EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_DRAWFRAME ), FALSE );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_USEPALETTE ), FALSE );
}
if( !lpOptions->bSoundOnlyMovie )
{bCopyIcon = lpOptions->bCopyIcon;
}
else
{bCopyIcon = TRUE;
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_COPYICON ), FALSE );
}
CheckDlgButton( hdlg, EDIT_OPTIONS_COPYICON, bCopyIcon );
CheckDlgButton( hdlg, EDIT_OPTIONS_SHOWTITLEBAR, lpOptions->bShowTitleBar );
if( !bCopyIcon )
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_SHOWTITLEBAR ), FALSE );
if( !lpOptions->bSoundOnlyMovie )
{if( lpOptions->bCopyCurrentFrame )
idButton = EDIT_OPTIONS_COPYCURRENT;
else
idButton = EDIT_OPTIONS_COPYPOSTER;
CheckRadioButton( hdlg, EDIT_OPTIONS_COPYCURRENT,
EDIT_OPTIONS_COPYPOSTER, idButton );
}
else
{EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_COPYCURRENT ), FALSE );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_COPYPOSTER ), FALSE );
}
if( lpOptions->bLoop )
idButton = EDIT_OPTIONS_LOOP;
else if( lpOptions->bLoopPalindrome )
idButton = EDIT_OPTIONS_PALINDROME;
else
idButton = EDIT_OPTIONS_STOPATEND;
CheckRadioButton( hdlg, EDIT_OPTIONS_STOPATEND,
EDIT_OPTIONS_PALINDROME, idButton );
if( !lpOptions->bSoundOnlyMovie )
{if( lpOptions->bSizeHalf )
idButton = EDIT_OPTIONS_SIZEHALF;
else if( lpOptions->bSizeNormal )
idButton = EDIT_OPTIONS_SIZENORMAL;
else if( lpOptions->bSizeDouble )
idButton = EDIT_OPTIONS_SIZEDOUBLE;
else
idButton = EDIT_OPTIONS_SIZECURRENT;
CheckRadioButton( hdlg, EDIT_OPTIONS_SIZECURRENT,
EDIT_OPTIONS_SIZEDOUBLE, idButton );
}
else
{EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_SIZECURRENT ), FALSE );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_SIZEHALF ), FALSE );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_SIZENORMAL ), FALSE );
EnableWindow( GetDlgItem( hdlg, EDIT_OPTIONS_SIZEDOUBLE ), FALSE );
CheckRadioButton( hdlg, EDIT_OPTIONS_SIZECURRENT,
EDIT_OPTIONS_SIZEDOUBLE, EDIT_OPTIONS_SIZECURRENT );
}
return;
}
// Function: GetCurrentDlgSettings - Fills the options struct with the current state
// of the dialog controls
// --------------------------------------------------------------------
// Parameters: HWND hdlg
// LPQTOLE_OPTIONSMOVIE lpOptions
//
//
// Returns: VOID
// --------------------------------------------------------------------
static VOID NEAR GetCurrentDlgSettings( HWND hdlg, LPQTOLE_OPTIONSMOVIE lpOptions )
{lpOptions->bShowMovieController =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_SHOWMC );
GetDlgItemText( hdlg, EDIT_OPTIONS_CAPTION,
lpOptions->szCaption, MAX_TEXT_LEN );
lpOptions->bPlaySelectionOnly =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_PLAYSELONLY );
if( !lpOptions->bSoundOnlyMovie )
{lpOptions->bDrawWindowFrame =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_DRAWFRAME );
lpOptions->bUseMoviePalette =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_USEPALETTE );
lpOptions->bCopyIcon =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_COPYICON );
lpOptions->bShowTitleBar =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_SHOWTITLEBAR );
}
else
{lpOptions->bDrawWindowFrame = FALSE;
lpOptions->bUseMoviePalette = FALSE;
lpOptions->bCopyIcon = TRUE;
lpOptions->bShowTitleBar = IsDlgButtonChecked( hdlg,
EDIT_OPTIONS_SHOWTITLEBAR );
}
lpOptions->bLoop = IsDlgButtonChecked( hdlg, EDIT_OPTIONS_LOOP );
lpOptions->bLoopPalindrome =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_PALINDROME );
if( !lpOptions->bSoundOnlyMovie )
{lpOptions->bSizeHalf =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_SIZEHALF );
lpOptions->bSizeNormal =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_SIZENORMAL );
lpOptions->bSizeDouble =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_SIZEDOUBLE );
lpOptions->bCopyCurrentFrame =
IsDlgButtonChecked( hdlg, EDIT_OPTIONS_COPYCURRENT );
}
else
{lpOptions->bSizeHalf = FALSE;
lpOptions->bSizeNormal = FALSE;
lpOptions->bSizeDouble = FALSE;
lpOptions->bCopyCurrentFrame = TRUE;
}
return;
}